package cn.fl.institution.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.institution.dto.PrjDtlInsRedmInfoDTO;
import cn.fl.institution.dto.PrjInsRedmInfoDTO;
import cn.fl.institution.transform.base.BasePrjInsRedmInfoVOTransform;
import cn.fl.institution.vo.PrjDtlInsRedmInfoVO;
import cn.fl.institution.vo.PrjInsRedmInfoVO;

import java.util.ArrayList;
import java.util.List;


/**
 * @Description: 资管项目赎回表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class PrjInsRedmInfoVOTransform extends BasePrjInsRedmInfoVOTransform {


    /**
     * DTO 转  VO
     *
     * @param po PrjInsRedmInfoDTO
     * @return PrjInsRedmInfoVO
     */
    public static PrjInsRedmInfoVO toVO(PrjInsRedmInfoDTO dto) {
        PrjInsRedmInfoVO vo = baseToVO(dto);
        //设置自定义扩展属性
        if (CollectionUtils.isNotEmpty(dto.getPrjDtlInsRedmInfoDTOList())) {
            List<PrjDtlInsRedmInfoVO> prjDtlInsRedmInfoVOList = toPrjDtlVOList(dto.getPrjDtlInsRedmInfoDTOList());
            vo.setPrjDtlInsRedmInfoList(prjDtlInsRedmInfoVOList);
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param dto PrjInsRedmInfoVO
     * @return PrjInsRedmInfoDTO
     */
    public static PrjInsRedmInfoDTO toDTO(PrjInsRedmInfoVO vo) {
        PrjInsRedmInfoDTO dto = baseToDTO(vo);
        //设置自定义扩展属性
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param List<PrjInsRedmInfoDTO>
     * @return List<PrjInsRedmInfoVO>
     */
    public static List<PrjInsRedmInfoVO> toVOList(List<PrjInsRedmInfoDTO> list) {
        List<PrjInsRedmInfoVO> voList = new ArrayList<PrjInsRedmInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (PrjInsRedmInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<PrjInsRedmInfoVO>
     * @return List<PrjInsRedmInfoDTO>
     */
    public static List<PrjInsRedmInfoDTO> toDTOList(List<PrjInsRedmInfoVO> list) {
        List<PrjInsRedmInfoDTO> dtoList = new ArrayList<PrjInsRedmInfoDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (PrjInsRedmInfoVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<PrjDtlInsRedmInfoVO>
     * @return List<PrjDtlInsRedmInfoDTO>
     */
    public static List<PrjDtlInsRedmInfoVO> toPrjDtlVOList(List<PrjDtlInsRedmInfoDTO> list) {
        List<PrjDtlInsRedmInfoVO> voList = new ArrayList<PrjDtlInsRedmInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (PrjDtlInsRedmInfoDTO dto : list) {
                voList.add(toPrjVO(dto));
            }
        }
        return voList;
    }

    public static PrjDtlInsRedmInfoVO toPrjVO(PrjDtlInsRedmInfoDTO dto) {
        PrjDtlInsRedmInfoVO vo = new PrjDtlInsRedmInfoVO();
        if (dto != null) {
            vo.setCertNo(dto.getCertNo());
            vo.setPaySchId(dto.getPaySchId());
            vo.setPrdMdl(dto.getPrdMdl());
            vo.setPrdNm(dto.getPrdNm());
            vo.setPrjId(dto.getPrjId());
            vo.setVin(dto.getVin());
            vo.setIsOCPay(dto.getIsOCPay());
            vo.setPaySchNo(dto.getPaySchNo());
        }
        return vo;
    }

}
